.\"   $Id: GENLIB_PHCON.3,v 1.1 2002/03/08 14:08:10 fred Exp $
.\" @(#)GENLIB_PHCON.3 2.11 91/08/22 ; Labo Cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
GENLIB_PHCON
.XE \}
.TH GENLIB_PHCON.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
.SH NAME
GENLIB_PHCON \- place a physical connector in the current figure at absolute coordinates
.SH SYNOPSIS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include <genlib.h>
void GENLIB_PHCON(layer, width, name, orient, x, y)
char layer;
long width;
char \(**name, orient;
long x, y;
.ft R
.fi
.so man1/alc_origin.1
.SH PARAMETERS
.TP 20
\fIlayer\fP
Layout layer of the connector
.TP
\fIwidth\fP
Width of the connector
.TP
\fIname\fP
Name to be given to the connector
.TP
\fIorient\fP
Face of the cell on witch the connector belongs
.TP
\fIx, y\fP
Absolute coordinates of the connector
.SH DESCRIPTION
\fBPHCON\fP adds a connector in the current layout cell, at the specified
coordinates, with the given attributs.
The \fIlayer\fP argument can take the following legal values:
.RS
.TP
\fBNWELL\fP 
.TP
\fBPWELL\fP 
.TP
\fBNTIE\fP 
.TP
\fBPTIE\fP 
.TP
\fBNDIF\fP 
.TP
\fBPDIF\fP 
.TP
\fBNTRANS\fP 
.TP
\fBPTRANS\fP 
.TP
\fBPOLY\fP 
.TP
\fBALU1\fP 
.TP
\fBALU2\fP 
.TP
\fBALU3\fP 
.TP
\fBTPOLY\fP 
.TP
\fBTALU1\fP 
.TP
\fBTALU2\fP 
.TP
\fBTALU3\fP 
.RE
.LP
The name argument is not enough of an information to non ambigiously identify
a connector.
In order to be able to do so, an \fIindex\fP is computed for each connector
that has an already existing name, following a topological order.
Each time a connector is created, the \fIindex\fP is updated, regarding the
name of the connector.
Since someone writing a tiler needs to know exactly what connector to access,
the indexation algorithm must be known by the user.
.TP 20
Connectors with a unique name:
Such connectors have the index \fB0\fP
.TP 20
Connectors with a name apearing many times:
The indexes are computed from left to right, and then from bottom to top,
starting at \fB0\fP. 
If two connectors are on the same location, with the same name, then the
\fIlayer\fP decides which one is has the greater number, from lower level,
\fBNWELL\fP to upper level, \fBALU3\fP.
.LP
The \fIorient\fP parameter may take the following values:
.TP 20
\fBNORTH\fP
for a connector placed on the top of the cell.
.TP
\fBSOUTH\fP
for a connector placed on the bottom of the cell.
.TP
\fBEAST\fP
for a connector placed on the right side of the cell.
.TP
\fBWEST\fP
for a connector placed on the left side of the cell.
.TP
Remark:
Connectors placed on corners of leaf cells are given the \fBEAST\fP orientation
if on top/right or bottom/right corner, and \fBWEST\fP if top/left or
bottom/left.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"GENLIB_PHCON impossible : missing GENLIB_DEF_PHFIG"
.ft R
.RS
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
possible to place a connector inside it.
you must call \fBDEF_PHFIG\fP before any other layout action.
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"illegal addphcon : orientation is XX in \fIname\fP"
.ft R
.RS
The \fIorient\fP parameter does not have a legal value, but \fIXX\fP.
.RE
.SH EXAMPLE
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include <genlib.h>
main()
{
	/\(** Create a figure to work on  \(**/
	GENLIB_DEF_PHFIG("cell");
	.
	.
	.
	GENLIB_DEF_AB(0L, 0L, 0L, 0L);
	/\(** Put a connector \(**/
	GENLIB_PHCON(ALU1, 1, "cin", SOUTH, 12L, 0L);
	/\(** Save that on disk \(**/
	GENLIB_SAVE_PHFIG();
}
.ft R
.fi
.SH SEE ALSO
.BR genlib (1),
.BR GENLIB_DEF_PHFIG (3),
.BR GENLIB_SAVE_PHFIG (3),
.BR GENLIB_COPY_UP_ALL_CON (3),
.BR GENLIB_COPY_UP_CON (3),
.BR GENLIB_COPY_UP_CON_FACE (3),
.BR GENLIB_THRU_CON_H (3),
.BR GENLIB_THRU_CON_V (3).


.so man1/alc_bug_report.1

